This invention relates to automated teller machines. Specifically this invention relates to devices and software used in the operation of automated teller machines and a method for operation and distribution thereof.
Automated teller machines (ATMs) are known in the prior art. Automated teller machines may be used by consumers to carry out banking and other functions. Such functions may include for example receiving cash, making deposits, checking account balances, cashing checks, printing checks, printing statements, printing money orders and other functions. For purposes of this disclosure an automated teller machine will be considered to include any device operative to carry out one or more types of financial transactions for users of the machine.
Automated teller machines usually include one or more internal processors which carry out software instructions and enable operation of the machine. Presently most automated teller machine software is proprietary to the particular machine manufacturer. As a result the software which causes one manufacturer""s automated teller machine to operate will not operate another manufacturer""s automated teller machine.
Recently organizations have begun to develop standards related to devices commonly found in automated teller machines. These standards provide a generally uniform set of instructions for operating each particular type of device which is likely to be found in an automated teller machine. For example these standards may provide a generally uniform set of instructions for operating a cash dispenser to dispense a bill. As a result an entity wishing to write software to operate an automated teller machine may theoretically write a suitable software application for controlling the devices in the machine by writing the software application in accordance with the standard. In addition software written in accordance with the standard should be able to operate in automated teller machines made by different manufacturers. An example of such a standard is known as the WOSA-XFS or XFS standard which has been developed by a committee of the CEN. Other standards are also being discussed and developed.
In order for the standards to have greater value, manufacturers of automated teller machines would need to produce software that will enable the devices in their machines to operate in response to the standardized instructions. Software which enables a particular manufacturer""s transaction function devices in an ATM to operate in accordance with a standard is referred to in an XFS environment or other standardized environments, as a service provider or SP software. Some manufacturers of automated teller machines have developed SP software for the transaction function devices included in their machines. However, certain manufacturers place restrictions on the availability of their SP software. As a result it is not generally feasible for a software developer to develop a hardware independent software application for operating automated teller machines produced by different manufacturers.
Further, the ability of application developers to develop applications may present issues related to maintaining the proper operation of the ATM. The ability of third party developers unassociated with an ATM manufacturer to write software that can be loaded onto and operate the ATM may present issues as to whether the software loaded on the ATM is authorized as well as whether such a developer has met commitments that they may have related to the manufacturer or other third parties.
A further issue may arise with regard to entities that wish to operate devices in conjunction with an automated teller machine that are not devices for which standard service provider interfaces have been developed and/or devices which require different relationships to other ATM transaction function devices than a device normally associated with such a service provider interface. In such cases it may not be cost effective for an ATM manufacturer to develop or support service provider software for devices that are not normally included in an automated teller machine. As a result the capabilities of automated teller machines to work in conjunction with such external devices may not be developed.
Further issues may arise when software components provided by different entities are installed on an ATM. Uncertainty may arise as to which software component (or transaction function device) is the cause of a malfunction of the ATM.
There exists a need for a system and method for facilitating the distribution of software for operating automated teller machines and which will make software more readily available to owners of automated teller machines and developers who wish to have a single software application that runs automated teller machines of different manufacturers. There further exists a need for a system and method for assuring that software which has been developed and/or modified by third parties, or that has been installed on ATMs is authorized by the manufacturer of the ATM or other authorizing entity. There further exists a need for assuring that third parties who develop or modify ATM software abide by commitments that they had made to the ATM manufacture, other authorizing entity or the user community in general. There further exists a need for verifying that multiple software components from different sources are authorized to work together on an ATM, and for more readily identifying the source of a malfunction. There further exists a need for a system and method for supporting devices that are not traditionally included in ATMs as adjunct devices to ATMs and to assure that such adjunct devices are authorized and supported.
It is an object of an exemplary embodiment of the present invention to provide a method.
It is a further object of an exemplary embodiment of the present invention to provide a method of distributing automated teller machine software.
It is a further object of an exemplary embodiment of the present invention to provide a method of distributing automated teller machine software that will enhance the ability of owners of automated teller machines to use software that can be run on automated teller machines produced by different manufacturers.
It is a further object of an exemplary embodiment of the present invention to provide a method in which advancements in automated teller machine software are shared with the market so as to improve the quality of automated teller machine software.
It is a further object of an exemplary embodiment of the present invention to provide a method for distributing automated teller machine software that preserves heightened security for systems including automated teller machines.
It is a further object of an exemplary embodiment of the present invention to provide an automated teller machine that is operative to verify that software installed thereon has been authorized by an entity associated with the machine.
It is a further object of an exemplary embodiment to provide an automated teller machine which operates to more readily identify the source of malfunctions.
It is a further object of an exemplary embodiment of the present invention to provide an automated teller machine and system that is operative to verify that a plurality of software components installed on an automated machine have been indicated as suitable for operation together.
It is a further object of an exemplary embodiment of the present invention to provide an automated teller machine and method which enables the machine to work in conjunction with an external device not generally operated in an automated teller machine.
Further objects of exemplary embodiments of the present invention will be made apparent in the following Best Modes for Carrying Out Invention and the appended claims.
The foregoing objects are accomplished in a first exemplary embodiment by a method in which an entity develops a hardware independent software application for operating automated teller machines of different manufacturers. This may include for example, a software application that complies with the XFS or other standard. In accordance with the first exemplary method, the entity developing the application then offers to provide the right to use the software to all owners of automated teller machines regardless of brand at no charge.
In accordance with an exemplary form of the method, the entity originally developing the software application authorizes third parties, such as automated teller machine owners or software developers or others, to modify and/or distribute the original and modified forms of the software. The right to modify and/or distribute the software is offered in exchange for such third party""s agreement to provide the source code for such modified software to the entity offering the application. The entity offering the application may then further make the modified forms of the software available in the same manner as the original application. In an exemplary embodiment to further assure that the third parties modifying the software make their modifications available, a condition to granting the rights to modify the software includes an obligation to make available the source code for such modified software to any third party upon request.
In some exemplary embodiments in order to assure security of automated teller machine systems, the requirement to provide modifications to the entity originally offering the application and/or to third parties, may be restricted with regard to security software modifications. Such security software modifications may include modifications as may be specifically defined by agreement, but would normally include only those modifications which if provided and made publicly available may facilitate the compromise of security of an automated teller machine system. In some exemplary embodiments such security software modifications may not necessarily include techniques which rely on specific keys, certificates or other electronic security features which provide security independent from the software itself and which are unique to the particular user. In one exemplary embodiment however, for security software modifications that arc not contributed to the application provider for redistribution to third parties, the entity making such modifications is required to provide a general description of the security modifications made and the name of each entity to which the modified software has been provided. The entity offering the application would then make this information publicly available so that it could be found by third parties.
In addition or in the alternative, exemplary embodiments may require a party making security software modifications that are not contributed to the generally available application, to make the source code for such security modifications available to any user who has received the code or any person or entity that such a user has designated as their agent for receiving the code. This may include for example another developer which a user of such a system wishes to have further modify the software. Of course the obligations to contribute modifications and make available further security software modifications would apply to any subsequent modifications of the code.
In other exemplary embodiments entities requiring modifications to the software application are urged through technological measures to provide the modified forms of the software to the entity offering the original form of the software. This may be done for example, by including in the automated teller machine at least one software verification device that is operative to verify that a copy of the software installed on the machine has been provided to the entity. The software verification device may operate for example, by verifying one or more verification features that are included in the software application by the entity offering the original code after the third party had provided it to the entity. This may include for example, the third party providing the modified software to the entity, and the entity including verification features in the software such as a digital signature, and the entity then providing the software with the digital signature back to the developer or other entity who produced the modified version. In such a system the software verification device in the ATM may operate to read and analyze the digital signature included in the software after it is installed to verify that the signature is a valid signature of the authorizing entity.
In some alternative exemplary embodiments the ATM may include a software verification device that is operative to communicate with a remote computer operated under the auspices of the entity offering the software. In such systems remote communication caused through operation of the software verification device, between the machine and the remote computer is operative to determine that the software installed in the machine has been provided to the entity. This may be done for example, by comparing identifying features of the software in the machine with such features of software deposited with the entity. Such identifying features may include a hash of all or a portion of the software and/or comparing the magnitude of measurable parameters associated with the software and/or other features or combinations thereof. Such communication between the ATM and the remote computer associated with the entity is operative to determine at least one result indicative of the relationship between the identifying features which establishes whether the software has been provided to the entity and which is used by the machine as the basis for allowing or preventing the software from operating at least one device of the machine.
In other exemplary embodiments the principles described may be used to verify that software that is not made generally available for distribution and modification, is authorized by the manufacturer, licensor or other entity associated with the machine. This may include for example situations where an ATM manufacturer, an ATM operator such as a financial institution or other third party commissions an independent developer to produce software to operate an ATM. At least one software verification device may operate in the ATM to verify that the software which has been installed therein is the software that has been provided to or otherwise authorized by the entity. Such approaches may help to assure that independent developers or other third parties do not provide or install unauthorized software on ATMs. As can be appreciated, a requirement that the entity has received the software and in some manner authorized its use before the software will operate on the ATM to carry out at least one type of transaction function minimizes the risk of the use of unauthorized software.
In other exemplary embodiments the principles described herein may be used to facilitate the development of systems in which other devices not normally operated in automated teller machines are nonetheless used as an adjunct thereto. Such adjunct devices may include for example, specialized money order, check or ticket printers which provide special authentication or other types of features on items that they produce. Other devices may include ticket acceptors or token return devices which have special requirements not normally associated with financial transactions. Other devices may include for example, devices which provide goods or services of value such as for example, article rental devices which enable the user to rent or operate an article for a period of time through payment made through the ATM. Other examples may include devices which deliver various types of digital media such as video, music, text or other items. Other examples of devices may include tanning devices, aroma therapy devices, medication dispensing devices, oxygen delivery devices, beverage dispensing devices and other types of devices for which there is an associated financial transaction that can be conducted through a connected ATM.
In some exemplary embodiments entities such as the ATM manufacturer or other entity, may provide the source code of its service provider software to third parties and grant the right to make modifications thereto. Such third parties may develop modified forms of the service provider software so as to enable the support of specialized devices which are not normally included in the ATM. Such specialized device support may facilitate the development and support for such adjunct external devices which the ATM manufacturer may not otherwise support. To assure that the modified forms of the service provider software are suitable, some exemplary embodiments may require that such modified forms of the software be authorized by the entity such as the manufacturer of a machine. This enables the manufacturer of the machine or other entity to certify that the modified form of the software is appropriately suitable for operation in the machine and in the other associated device.
In some further exemplary embodiments multiple items of computer software may be installed in the ATM. In such exemplary embodiments the software verification device may operate to determine that all of such plurality of software items are authorized for operation on the machine by the entity. In addition, the machine may operate to verify that the plurality of software items that are installed on the machine are compatible or otherwise authorized for use together on the machine. Such capabilities are provided so that the machine will not operate absent a determination that the items are authorized and suitable for use together. Other exemplary embodiments may include software components which operate independently to test the functionality of the component independently of other software components and/or devices. This may facilitate the identification of a malfunctioning software or hardware component from among a plurality of components that are interdependent in their normal operation. Of course it should be understood that these features and approaches are exemplary and in other features and embodiments other approaches may be used.
The descriptions provided herein are exemplary and all other devices, methods and systems encompassed by any of the claims below are within the scope of the present invention.